package com.chang.springsecurity.repository;

import com.chang.springsecurity.entity.User;
import jakarta.annotation.PostConstruct;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Repository;

import java.util.HashMap;
import java.util.Map;

@Repository
public class UserRepository {
    // 内存存储：手机号 → User
    private final Map<String, User> userMap = new HashMap<>();

    /**
     * 初始化模拟用户数据（应用启动时执行）
     */
    @PostConstruct
    public void init() {
        // 密码原文：123456
        // BCrypt 加密结果（可通过 BCryptPasswordEncoder.encode("123456") 生成）
        String encodedPassword = "$2a$10$rgTdPQXrJLX1YOdyh/qWbOuufZTpliWfLC4hfAeloHvLe0x3J/Ame"; // 示例

        userMap.put("13800138000", new User(1L, "13800138000", encodedPassword, "USER", true));
        userMap.put("13900139000", new User(2L, "13900139000", encodedPassword, "ADMIN", true));
    }

    /**
     * 根据手机号查询用户
     * @param phone 手机号
     * @return 用户实体，不存在则返回 null
     */
    public User findByPhone(String phone) {
        return userMap.get(phone);
    }
}
